package com.hjl.jsp;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author ServivE
 * @version 0.1
 * @className JspController
 * @description 通过视图解析器找到jsp模板页面
 * @date 2024/8/12 21:26
 * @since jdk11
 */
@Controller
@RequestMapping("jsp")
/**
 *快速查找试图 TODO:
 *              1.方法的返回值是字符申类型
 *              2.不能添加@ResponseBody,直接返回给字符串给浏览器，不找视图，不走试图解析器
 *              3.返回值 对应中间的视图名称即可
 */
public class JspController {
    @GetMapping("index")
    public String index(HttpServletRequest request) {
        request.setAttribute("data", "hello jsp!!!");
        System.out.println("jspController.index");
        return "index";//WEB-INF/views下的index.jsp
    }
    /**重定向:
     * 1.方法返回值写成字符申类型
     * 2.不能添加responseBody注解
     * 3.返回字符串字符串前面 redirect:/重定向的地址
     */
    @RequestMapping("/redirect")
    public String redirectDemo() {
        // 重定向到 /jsp/index 路径
        System.out.println("jspController.redirect");
        return "redirect:/jsp/index";
    }


    // 重定向到外部资源
    @RequestMapping("/redirect/Baidu")
    public String redirectBaiDu() {
        // 重定向到 baidu 路径
        System.out.println("jspController.redirectBaiDu");
        return "redirect:http://www.baidu.com";
    }


    /**
     *转发:只能是项目下的资源
     *1.方法的返回值写成字符串
     *2.不能添加responseBody注解
     *3.返回的字符串前面 forward:/转发地址
     */
    @RequestMapping("/forward")
    public String forwardDemo() {
        // 转发到 /jsp/index 路径
        System.out.println("jspController.forward");
        return "forward:/jsp/index";
    }
}
